//当两个指针首次相遇，证明链表有环的时候，让两个指针从相遇点继续循环前进，并统计前进的循环次数，直到两个指针第2次相遇。此时，统计出来的前进次数就是环长。”
//因为指针p1每次走1步，指针p2每次走2步，两者的速度差是1步。当两个指针再次相遇时，p2比p1多走了整整1圈。
//因此，环长=每一次速度差×前进次数=前进次数。”


function isCycle(head){
    let p1 = head;
    let p2 = head;
    let meatCount=0;
    let count=0;
    while(p2!=null && p2.next!=null&& meatCount<2){
        p1=p1.next;
        p2=p2.next.next;
        if(p1 == p2){
            meatCount++
        }
        if(meatCount===1){
            count++
        }
    }
    return count;
}

class Node{
    constructor(data){
        this.data=data;
        this.next=null;
    }
}


let node1 = new Node(5);
let node2 = new Node(3);
let node3 = new Node(7);
let node4 = new Node(2);
let node5 = new Node(6);

node1.next=node2;
node2.next=node3;
node3.next=node4;
node4.next=node5;
node5.next=node2;



console.log(isCycle(node1));
